1. Technical Field
The present invention is directed generally toward voice processing systems. More particularly, the present invention relates to a method and apparatus in a Voice over Internet Protocol (VoIP) communication system for improving transmit and receive data paths.
2. Description of the Related Art
There is an increasing demand for Voice over Internet Protocol (VoIP) solutions for use in home and office. VoIP systems transmit voice communications between two computer systems using a data network using the Internet Protocol instead of via a traditional telecommunications network such as the Public Switched Telephone Network (PSTN) or Private Branch Exchange (PBX). A VoIP system receives voice and fax signals, converts them into digital data, and transmits the digital data over a computer network using the IP standard.
Typically, a transmitting VoIP system receives digital voice input within a digital signal processor (DSP) which encodes the digital voice to produce compressed data and outputs the compressed data. Conversely, a receiving VoIP system also includes a digital signal processor (DSP) which receives the compressed data, converts it back to digital voice, and then outputs the digital voice.
A coder/decoder (codec) is a module that converts linear voice data to produce compressed data and converts compressed data to produce linear voice. Most VoIP systems have a list of codecs that can be used. This is primarily due to the different quality and bit-rate tradeoffs among the different codecs. A codec includes both an encoder and a decoder.
However, the G.711 codec is mandatory for all VoIP systems. The G.711 codec lacks any packet loss concealment (PLC), voice activity detection (VAD), discontinuous transmission (DTX), and comfort noise generation (CNG) functionality.
Many VoIP applications require these PLC, VAD, DTX, and CNG functions. When an application requires these functions, an additional stand-alone module must be provided in the DSP to provide each PLC, VAD, DTX, and CNG function. The additional modules take up valuable hardware real estate within the system.
FIG. 1 is a block diagram of a transmit data path included within a digital signal processor (DSP) in a Voice over Internet Protocol (VoIP) system in accordance with the prior art. A DSP device 100 includes a transmit data path 101. DSP 100 is included within a VoIP system. Data path 101 includes a mandatory codec 102, such as a G.711 encoder, a separate module that provides a discontinuous transmission generator function DTX 104, a separate module that provides a voice activity detector function VAD 106, and an enhanced codec, such as enhanced encoder 108 that adheres to the ITU G.729AB standard. Enhanced encoder 108 includes within it an internal DTX and an internal VAD. According to the prior art, a voice signal is received within either enhanced encoder 108 or VAD 106 as selected by a codec select switch 110. If the mandatory codec is selected by switch 110, VAD 106 receives the input signal and determines whether voice is present in the received signal. If voice is detected in the signal, VAD 106 selects mandatory encoder 102 which encodes the voice signal to produce an output data signal. The output of encoder 102 is then the output of DSP 100. If voice is not detected in the signal, VAD 106 selects DTX 104 which produces silence description frames as the output data signal. The output of DTX 104 is then the output of DSP 100. VAD 106 continues to select either encoder 102 or DTX 104 as the continuous input signal is received depending on whether voice is detected or not currently in the input stream in order to product a continuous stream of digital data output.
FIG. 2 is a block diagram of a receive data path included within a digital signal processor (DSP) in a Voice over Internet Protocol system in accordance with the prior art. A DSP device 200 includes a receive data path 201. DSP 200 is included within a VoIP system. Data path 201 includes a mandatory codec 202, such as an decoder G.711, a separate module that provides a comfort noise generator function CNG 204, a separate module that provides a packet loss concealment function PLC 206, and an enhanced codec, such as enhanced decoder 208 that adheres to the G.729AB standard. Enhanced decoder 208 includes within it an internal PLC and an internal CNG. According to the prior art, a data signal is received within either enhanced encoder 208 or both mandatory decoder 202 and CNG 204 as selected by a codec select switch 210. If the mandatory codec and CNG path is selected by switch 210, mandatory decoder 202 and CNG 204 receive the input signal. If the input data signal is transmitted silence, CNG 204 inserts comfort noise. If the input data signal includes a voice frame, mandatory decoder 202 decodes the voice frame to produce a voice output signal. In the case of data packet loss where no voice data is present and the input data signal is neither transmitted nor untransmitted silence, PLC 206 attempts to extrapolate voice data to fill in the gap when the voice output signal is produced.
Modem DSP devices sometimes include codecs in addition to the mandatory G.711 codec. For example, an enhanced codec, e.g. codec G.729AB, was provided in the DSP in both FIGS. 1 and 2. These other non-mandatory codecs often include the PLC, VAD, DTX, and CNG functions within the codec itself. The G.729AB codec includes within it an internal PLC, VAD, DTX, and CNG. Therefore, these DSP devices include a G.711 codec, a separate PLC module, a separate VAD module, a separate DTX module, a separate CNG module, and a non-mandatory codec that includes within it internal PLC, VAD, DTX, and CNG functions.
Therefore, a need exists for a method and apparatus for improving transmit and receive data paths in a Voice over Internet Protocol communication system by removing duplicated functional modules from a digital signal processing unit that includes a mandatory codec as well as an enhanced codec that includes these functions internally.